// 获取元素
const inputEmail = document.querySelector('.email')
const inputNewpswd = document.querySelector('.newPassword')
const inputDeterminepswd = document.querySelector('.determinePassword')
const btnCaptcha = document.querySelector('.goCaptcha')
const inputCaptcha = document.querySelector('.captcha')
const btnFinish = document.querySelector('.finish')
const btnExit = document.querySelector('.exit a')

// 密码正则
const reg = /^(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,16}$/
let arr = JSON.parse(localStorage.getItem('arr'))

let emailK = 0
let passwordK = 0
let passwordK1 = 0
// 邮箱判断-失去焦点事件
inputEmail.addEventListener('blur', function () {
  if (inputEmail.value === '') {
    cueError(inputEmail, '请输入邮箱')
  } else {
    emailyz(this.value)
    emailK = 1
  }
})
// 邮箱判断-输入事件
inputEmail.addEventListener('input', function () {
  emailyz(this.value)
})
// 邮箱判断函数
function emailyz(email) {
  let emailExist = true
  for (let userMessage of arr) {
    if (userMessage.email === email) {
      emailExist = false
    }
  }
  if (emailExist) {
    cueError(inputEmail, '用户邮箱未创建')
  } else {
    removeError(inputEmail)
  }
}
// 提示错误函数
function cueError(inp, cue) {
  // 获取形参的下一个元素
  const i = inp.nextElementSibling
  // 给下一个元素添加内容
  i.textContent = cue
  i.classList.add('red')
}
// 移除属性函数
function removeError(inp) {
  // 获取形参的下一个元素
  const i = inp.nextElementSibling
  //给i元素去除e属性
  i.classList.remove('rad')
  // 清空形参下一个i标签里的内容
  i.innerHTML = ''
}

// 正则密码判断函数
function paswdpd(mm) {
  return reg.test(mm)
}

//新密码格式的判断-失去焦点事件
inputNewpswd.addEventListener('blur', function () {
  // btnExit.click()
  if (!paswdpd(this.value)) {
    cueError(this, '请输入正确格式的密码')
  } else {
    removeError(this)
    passwordK = 1
  }

})
//新密码格式的判断-输入事件
inputNewpswd.addEventListener('input', function () {
  if (!paswdpd(this.value)) {
    cueError(this, '请输入正确格式的密码')
  } else {
    removeError(this)
  }
})

// 确认密码的判断-失去焦点
inputDeterminepswd.addEventListener('blur', function () {
  if (this.value !== inputNewpswd.value) {
    cueError(this, '请输入相同的密码')
  } else {
    removeError(this)
    passwordK1 = 1
  }
})

btnCaptcha.addEventListener('click', function (e) {
  e.preventDefault()
  if (emailK == 1 && passwordK == 1) {
    //生成随机验证码(包含英文字母和数字）
    //创建数组
    let captcha = []
    let num = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    // //提取随机数对应的字符
    for (let i = 0; i < 5; i++) {
      //   //产生一个随机数
      let random = Math.floor(Math.random() * 37)//提取数组中的元素
      let random1 = Math.random()//定义另一个随机数来转换字母大写
      //判断元素是不是字母且随机数是不是大于0.5，是就大写否就小写
      let char = (random < 26 && random1 > 0.5) ? num[random].toUpperCase() : num[random]
      captcha.push(char)
    }
    this.innerHTML = captcha.join('')
    // 验证码标签-失去焦点事件
    inputCaptcha.addEventListener('blur', function () {
      if (btnCaptcha.innerHTML !== this.value) {
        cueError(this, '验证码不符')
        captchaK = 0
      } else {
        removeError(this)
        captchaK = 1
      }
    })
  } else {
    alert('请填好上面的信息')
  }
})

// 修改密码完成按钮点击
btnFinish.addEventListener('click', function () {
  if (emailK === 1 && passwordK === 1 && passwordK1 === 1) {
    if (revise(inputEmail.value, inputNewpswd.value)) {
      alert('修改完成')
      btnExit.click()
    } else {
      alert('没有找到')
    }
  } else {
    alert('请输入上面的内容')
  }
})
function revise(email, password) {
  let k = false
  for (let message of arr) {
    if (message.email === email) {
      message.password = password
      localStorage.setItem('arr', JSON.stringify(arr))
      k = true
      break
    }
  }
  if (!k) {
    console.log('未找的该邮箱')
  }
  return k
}